<?php

namespace app\test\controller;


use app\test\model\annocement_course;
use think\Db;
use think\Request;

/*
 * 学习thinkPHP时的笔记，做增删改查操作时可以用来参考
 */

class DataTest
{
    public function index()
    {
        //查询一条数据
//        $data1 = Db::table('question')->find();
        $data2 = Db::table('question')->where('course','c语言程序设计')->find();
        //  查询不到时可以try catch处理
        //查询多条
        // $data3 = Db::table('question')->select();
        //查询指定字段的一个值
//        $data4 = Db::name('annocement_course')->where('id',5)->value('father');
        //查询指定列的多个值
        $data5 = Db::name('annocement_course')->column('id');
        return json($data5);
    }

    public function getNoModelData()
    {
    $data = Db::table('annocement_course')->select();
//        $data = Db::name('user')->select();
        return json($data);
    }

    public function getModelData(Request $request)
    {
        $input= $request->param('input');
        $select = $request->param('select');
//        查询所有
        if($input == '' || $select == ''){
            $data = annocement_course::select();
        }
//        模糊查询  5.0和5.1不一样！！！！！！去5.1的手册看
        else {
            $where = '%'.$input.'%';
           $data = Db::name('annocement_course')->wherelike($select,$where)->select();
        }

//        //注释掉下一句，执行原生的html，可以跟踪查看sql语句
       return json($data);
    }

    public function insert()
    {
        $data = [
//            'id' => 1,
            'name' =>   '关于举办2021年中国大学生计算机设计大赛的通知',
            'content' => 'test',
            'date' =>   date('Y-m-d'),  //今天的日期
            'father' => '中国大学生计算机设计大赛'
        ];
//        insertAll可以批量插入
         $insert =   Db::name('annocement_class')->insert($data);
         return $insert;
    }
    public function update()
    {
        $data = [
            'content' => 'test++'
        ];
        $update = Db::name('annocement_class')->where('id',1)->update($data);
        return $update;
    }
    public function delete()
    {
//        极简删除可以根据主键直接删除，删除成功返回影响行数
//        $data = Db::name('annocement_class')->delete(6);
//        也可删除多行
//        $data = Db::name('annocement_class')->delete([1,2,3]);
//        正常情况可以通过where删除
        $data = Db::name('annocement_class')->where('id',8)->delete();
        return $data;
    }
//    测试请求 http://localhost/tp5.1test/public/test/data_test/test?a=1&b=2
    public function test1()
    {
        $request = request();
//        接受所有参数
//        $params = $request->param();
//        接受一个
        $params = $request->param('a');
//        下列为一种输出方式
//        dump($params);
        return json($params);
    }
//    参数绑定,thinkphp自动绑定 这样在请求时必须有该参数，且名字相同
    public function test2($userName,$passWord)
    {
//        dump($userName);
        return $passWord;
    }
//    依赖注入
    public function test3(Request $request)
    {
        $userName = $request->param('userName');
        return $userName;
    }
}
